#ifndef ODN_POINTENTITY_H
#define ODN_POINTENTITY_H

//#include <opal\opal.h>
//#include <ogre\Ogre.h>

#include "ODN_DLLAccess.h"
#include "ODN_BaseEntity.h"
#include "ODN_Events.h"
#include "ODN_Maths.h"
#include "ODN_Containers.h"

namespace ouden {

class ODN_DLLACCESS CPointEntity;



//////////Events///////////

//TODO: Point entity

//TODO: Think about mapping available events to strings for world access



//////End of Events////////



class ODN_DLLACCESS CPointEntity : public CBaseEntity
{
	public:
		CPointEntity(String sName, Vector vPos = Vector(0,0,0));
		virtual ~CPointEntity();
		
		virtual void update() 		{}
		
		//TODO: Think about how position (and rotation) is defined independant
		// of the existence of a model, possibly need virtual functions
		
		//TODO: Code for the following functions
		void getPos();
		void moveTo(Vector vPos);
		void moveBy(Vector vPos);
		//TODO: Rotation as well?
		
	protected:
		
		//TODO: Think about the need for client and server versions of client
		// events and their functions
		
		//Event handling functions
		
		Ogre::Node* m_pNode;
		
	private:
		
};

} //namespace ouden

#endif // ODN_POINTENTITY_H
